//
// Created by yanhai on 2021/10/14.
//

#pragma once

#include <vector>
#include <string>

namespace muh {
namespace encoding {

class Base64 {
public:
    enum Base64Option {
        Base64Encoding = 0,
        Base64UrlEncoding = 1,

        KeepTrailingEquals = 0,
        OmitTrailingEquals = 2
    };

private:
    // todo
    Base64() = default;

    ~Base64() = default;

public:
    static std::string encodeToString(const std::string &src);
    static std::string encodeToString(const std::string &src, int options);
    static std::vector<char> fromBase64(const std::string &base64);
    static std::vector<char> fromBase64(const std::string &base64, int options);
};

}
}
